type go/types.Chan

45 uses

	go/types (current package)
		builtins.go#L187: 		case *Slice, *Chan:
		builtins.go#L205: 				case *Array, *Slice, *Chan:
		builtins.go#L239: 			uch, _ := u.(*Chan)
		builtins.go#L501: 		case *Map, *Chan:
		chan.go#L8: type Chan struct {
		chan.go#L24: func NewChan(dir ChanDir, elem Type) *Chan {
		chan.go#L25: 	return &Chan{dir: dir, elem: elem}
		chan.go#L29: func (c *Chan) Dir() ChanDir { return c.dir }
		chan.go#L32: func (c *Chan) Elem() Type { return c.elem }
		chan.go#L34: func (t *Chan) Underlying() Type { return t }
		chan.go#L35: func (t *Chan) String() string   { return TypeString(t, nil) }
		expr.go#L182: 		ch, _ := u.(*Chan)
		expr.go#L719: 	case *Pointer, *Signature, *Slice, *Map, *Chan:
		expr.go#L888: 	case *Chan:
		infer.go#L433: 	case *Chan:
		infer.go#L765: 	case *Chan:
		mono.go#L230: 		case *Chan:
		operand.go#L306: 	if Vc, ok := Vu.(*Chan); ok && Vc.dir == SendRecv {
		operand.go#L307: 		if Tc, ok := Tu.(*Chan); ok && Identical(Vc.elem, Tc.elem) {
		predicates.go#L126: 	case *Pointer, *Chan:
		predicates.go#L157: 	case *Slice, *Pointer, *Signature, *Map, *Chan:
		predicates.go#L380: 	case *Chan:
		predicates.go#L383: 		if y, ok := y.(*Chan); ok {
		stmt.go#L426: 		uch, _ := u.(*Chan)
		stmt.go#L838: 			case *Chan:
		stmt.go#L952: 	case *Chan:
		subst.go#L191: 	case *Chan:
		subst.go#L194: 			return &Chan{dir: t.dir, elem: elem}
		type.go#L109: 	if x, _ := x.(*Chan); x != nil {
		type.go#L110: 		if y, _ := y.(*Chan); y != nil && Identical(x.elem, y.elem) {
		typestring.go#L256: 	case *Chan:
		typestring.go#L263: 			if c, _ := t.elem.(*Chan); c != nil && c.dir == RecvOnly {
		typexpr.go#L364: 		typ := new(Chan)
		unify.go#L539: 	case *Chan:
		unify.go#L541: 		if y, ok := y.(*Chan); ok {

	golang.org/x/exp/apidiff
		compatibility.go#L23: 	case *types.Chan:
		compatibility.go#L24: 		if new, ok := new.(*types.Chan); ok {
		compatibility.go#L47: func (d *differ) checkCompatibleChan(otn *types.TypeName, old, new *types.Chan) {
		correspondence.go#L50: 	case *types.Chan:
		correspondence.go#L51: 		if new, ok := new.(*types.Chan); ok {

	golang.org/x/tools/internal/gcimporter
		bexport.go#L377: 	case *types.Chan:
		bimport.go#L575: 		t := new(types.Chan)
		iexport.go#L745: 	case *types.Chan:

	golang.org/x/tools/internal/typeparams
		coretype.go#L40: 	ch, ok := U.(*types.Chan)
		coretype.go#L48: 		curr, ok := terms[chans].Type().Underlying().(*types.Chan)